import java.util.*;
public class _03 {
    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n= sc.nextInt();
        fun(n);

    }
    
    public static void fun(int a){
        int i=0,j,w,k; 
        int b[]=new int [32]; 
     if(a==0)
	 	System.out.println("0");  
     else if(a==2)System.out.println("2"); 
     else if(a==1)System.out.println("2(0)"); 
     else   
     {  
         while(a!=0)
		 {b[i]=a%2;a=a/2;i++;}	//得到a的二进制表示，存放在数组b中 
		 
		 w=i;k=0;j=0;
		 
	 for(i=w-1;i>=0;i--)
	 	if(b[i]!=0)k++;  //k表示a二进制中1的个数 
	 	
     for(i=w-1;i>=0;i--)  //遍历数组b 
         if(b[i]!=0)  
     	{	j++;  
     		if(i==1)System.out.println("2");  
     		else {System.out.println("2");;fun(i);System.out.println(")");}  
     		if(j!=k)System.out.println("+");;
		}  
     }
}}
